ServersLookup Form for IWAReder to return User replicas for Load Balancers and Reverse Proxies to use Added by ~Juan Minjumigenakoi on May 7, 2010 | Version 1
|
|
The ServersLookup form has one "Computed for display" field called $$HTMLHead with a type of text. This field contains the formulas shown here. Debug statements have been added so that, if the form is opened manually from a browser, you can see the results from the formulas. To open the form manually, issue the following request: http://mail.acme.ibm.com/iwaredir.nsf/ServersLookup?OpenForm&nsfpath=mail\jsmith.nsf
tmpDebug := "";
tmpNSFPath := @ReplaceSubstring(@URLDecode
( "Domino"; @UrlQueryString("nsfpath") );"/";"\\");
tmpServers := @DbLookup( "":"" ; "":"cldbdir.nsf" ; "($Pathname)" ;
tmpNSFPath; "CanonicalServername");
tmpServers:=@If(@IsError(tmpServers);"";tmpServers);
REM {Lookup home mail server };
tmpHomeServer:=@Name([Canonicalize];@NameLookup( [NoUpdate];
@UserName; "MailServer" ));
REM {Is Home Mail server in list of servers, then move this up to
the front of the list};
tmpServers := @If(@IsMember(tmpHomeServer;tmpServers);
tmpHomeServer : @Transform(tmpServers;"x";@If(x=tmpHomeServer;@Nothing;x))
;tmpServers);
tmpDebug := tmpDebug + "ReplicaServers:" + @Implode(tmpServers;",");
tmpDNSNames := "";
tmpClusterName := "";
tmpClusterServers := "";
REM {If no servers found, then db is in a different cluster, return list of cluster
servers, with home server in front of list};
tmpServers := @If(tmpServers="" | @Elements(tmpServers)=0;
@Do(
tmpDebug := tmpDebug + "Looking for cluster servers;";
tmpClusterName := @Subset(@DbLookup("":""; "":"names.nsf"; "($ServersLookup)";
tmpHomeServer; "ClusterName"); 1);
tmpClusterServers := @DbLookup( "":""; "":"names.nsf"; "($Clusters)";
tmpClusterName; "$0");
tmpClusterServers := @Transform(tmpClusterServers;"x";
@If(x=tmpHomeServer;@Nothing;@Name([Canonicalize];x)));
tmpClusterServers := @If(@IsMember(tmpHomeServer;tmpClusterServers);
tmpHomeServer : @Transform(tmpClusterServers;"x";
@If(x=tmpHomeServer;@Nothing;x));tmpClusterServers);
tmpClusterServers);
tmpServers);
tmpLimit:=@Elements(tmpServers)+1;
@For(n:=1;
n0;tmpDNSNames+",";"") +
@LowerCase(@If (tmpHTTPHostNameALT!="";tmpHTTPHostNameALT;tmpServerFQDN))
);
@If(tmpClusterName="";@SetHTTPHeader("X-Domino-ReplicaServers";tmpDNSNames);
@SetHTTPHeader("X-Domino-ClusterServers";tmpDNSNames));
@SetHTTPHeader("Cache-control";"no-store");
@If(tmpDebug="";"";"") |
|